/**
 * 一个数组，存在多个字符串，求最长公共前缀
 * 直接对一个元素截取字符串，然后利用every和startWith判断是否同一前缀
 * @param {*} strs
 */
// var longestCommonPrefix = function (strs) {
//   let s0 = strs[0]
//   let sameHeader = ""
//   for (let i = 0; i < s0.length; i++) {
//     const char = s0.substring(0, i + 1)
//     if (strs.every((str) => str.startsWith(char))) {
//       sameHeader = char
//     } else {
//       break
//     }
//   }
//   return sameHeader
// }

/**
 * 将第一个字符串取出，然后与剩下的字符串进行匹配
 * @param {*} strs
 * @returns
 */
var longestCommonPrefix = function (strs) {
  if (strs.length == 0) return ""
  let ans = strs[0]
  for (let i = 1; i < strs.length; i++) {
    // 将第一个字符串与当前循环的字符串对比，如果相同，则截取相同的继续，如果不同，则暂停
    let j = 0
    for (; j < ans.length && j < strs[i].length; j++) {
      if (ans[j] != strs[i][j]) break
    }
    ans = ans.substr(0, j)
    if (ans === "") return ans
  }
  return ans
}

export { longestCommonPrefix }
